home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / modelers / geomview / sgi.lha / Geomview / man / cat1 / warp.1 < prev   
Text File  |  1993-11-01  |  10KB  |  265 lines

  1.  
  2.  
  3.  
  4. Warp(1)                              Warp(1)
  5.  
  6.  
  7. NAME
  8.        warp - Geomview external    module for deforming objects.
  9.  
  10. SYNOPSIS
  11.         warp
  12.  
  13. DESCRIPTION
  14.        Warp  is     a  Geomview external module allowing the user to
  15.        interactively deform OOGL objects through the movement  of
  16.        a  group    of control points.  Warp runs on Silicon Graphics
  17.        and Next    workstations.
  18.  
  19.        To warp an object, first    start warp as a    Geomview external
  20.        module  (See  Geomview(1)  and Geomview(5)).  In    Geomview,
  21.        turn world normalization    off and    center all  the     objects.
  22.        In  warp,  on the field marked "Object to warp:"    enter the
  23.        name of the object which    you wish to deform.  By     default,
  24.        this  field  is set to "g1."  You will also need    to create
  25.        control points to manipulate the    object.     The easiest  way
  26.        to  do  this  is     to  press the button marked "Position on
  27.        Grid" in    the Control Points section of the main panel.    A
  28.        3x3x3  grid  of    cubes  should  appear  around the object.
  29.        These cubes, called "widgets," represent    the locations  of
  30.        the control points.
  31.  
  32.        To  deform  the object, move one    of the cubes in    the stan-
  33.        dard Geomview fashion (ie translate it).      Now  press  the
  34.        button  marked "Warp."  The object should change    slightly.
  35.        If you moved a control point far    from any of the     vertices
  36.        of  the    object    or  if you did not move    the control point
  37.        particularly far, the change may    not be    very  noticeable.
  38.        If  you    have completed these steps successfully, you have
  39.        the basics down.
  40.  
  41.        You may want to position    control    points in other    locations
  42.        than  on    a grid.     Press the "Create on pick" button.  Now,
  43.        every time you pick and object in Geomview by  moving  the
  44.        cursor over it and pressing the right mouse button, a con-
  45.        trol point will be created.  These control points  may  be
  46.        used alone or in    addition to a grid.
  47.  
  48.        The  preview  button  in     the  main panel is used to get    a
  49.        quick look at what the warped object  will  be.     It  will
  50.        create  an  object  in  Geomview    called "preview" which is
  51.        identical to what the object will look  like  once  it  is
  52.        warped.     When the "Preview" button is used instead of the
  53.        "Warp" button, the object is  not  replaced,  the  control
  54.        points are not updated, and no intermediate files or steps
  55.        are created (Intermediate files and  steps  will     be  dis-
  56.        cussed soon).
  57.  
  58.        You  may     wish  to move an existing control point to a new
  59.        location    without    warping    the object.  To    do  this,  select
  60.        the  control  point from    the list of control points in the
  61.  
  62.  
  63.  
  64. Geometry Center         October 18, 1992            1
  65.  
  66.  
  67.  
  68.  
  69.  
  70. Warp(1)                              Warp(1)
  71.  
  72.  
  73.        warp panel (NOT the list    of geoms in the     Geomview  panel)
  74.        and press the "Edit point..." button.  A    panel will pop up
  75.        showing the current location.  You may set the x, y, and    z
  76.        coordinates  in    the  panel  by    hand, or read the current
  77.        location    of the control point in    Geomview by pressing  the
  78.        button  marked  "Read  Current Location."  Press    the "Set"
  79.        button to set the widget    to  the     location  shown  in  the
  80.        panel.
  81.  
  82.        The  "Strength"    and  "Stretchiness"  sliders on    the panel
  83.        control the strength of the control point and the stretch-
  84.        iness  of  the material.     If the    material does not seem to
  85.        be responding to    warping, set either the    strength  or  the
  86.        stretchiness higher.  If    the stretchiness value is set too
  87.        high, the object    may form sharp kinks when  warped.   When
  88.        the program starts, these parameters should be set to rea-
  89.        sonable values and generally will not require  adjustment.
  90.  
  91.        Clicking     the  button  marked  "Options..."  brings up the
  92.        options panel.  The options panel allows     control  of  the
  93.        intermediate  steps  in    the warping process.  These steps
  94.        are generally used to create animations    or  to    show  the
  95.        continuous  transformation  of  the object.  If the option
  96.        marked "Send to Geomview" is  selected,    the  intermediate
  97.        steps will be sent to Geomview so that the progression may
  98.        be observed.  If    the "Retain All    Steps" button is pressed,
  99.        the  intermediate  steps    sent to    Geomview will all accumu-
  100.        late instead of being replaced by later steps.  You proba-
  101.        bly will    very rarely need this option.
  102.  
  103.        Intermediate  steps may also be sent to files by    selecting
  104.        the "Save to files" option.  The    file prefix and    path  may
  105.        also  be     specified.   The  steps  will    be  numbered from
  106.        "Starting step" to "Ending step."  If the "Update automat-
  107.        ically"    option is selected, these figures will be updated
  108.        by warp every time the "Warp" button is pressed.     Once the
  109.        intermediate  steps have    been saved to a    file, they may be
  110.        played back as  an  animation  or  used    for  single-frame
  111.        recording.
  112.  
  113.        The widget size and geometry may    also be    changed    using the
  114.        options panel.  If you think the    widgets    are  too  big  or
  115.        too  small  or that little cubes    are obnoxious, update the
  116.        appropriate fields in the "Widgets" section of the options
  117.        panel.    You may    also ask to have the widgets scaled rela-
  118.        tive to the object you  wish  to     warp.     Note  that  this
  119.        option may take a few seconds to    apply.
  120.  
  121.        Using  the controls in the "Control Point Grid" section of
  122.        the options panel, you may control the dimensions  of  the
  123.        grid of control points that will    be created when    you press
  124.        the "Position on    grid" button  on  the  main  warp  panel.
  125.        Pressing     the  "Position     Control  Points"  button  on the
  126.        options panel will have the same    effect.
  127.  
  128.  
  129.  
  130. Geometry Center         October 18, 1992            2
  131.  
  132.  
  133.  
  134.  
  135.  
  136. Warp(1)                              Warp(1)
  137.  
  138.  
  139.        Warp also supports several lisp commands    which may be used
  140.        to  control its basic actions.  These commands will gener-
  141.        ally be sent to warp through Geomview using the    (emodule-
  142.        transmit)  command.  (create-widget (x y    z [w]))    creates    a
  143.        widget at the given location.  (create-widget-grid  [(x    y
  144.        z)])  produces  the same    results    as pressing the    "Position
  145.        on Grid"    button.     If x, y, and z    are present, they replace
  146.        the current grid    dimensions specified on    the options panel
  147.        of the user interface.  (delete-widget [name])  deletes    a
  148.        widget.     If  name  is  not  specified,    all  widgets  are
  149.        deleted.     (preview  [name])  gives  the    same  results  as
  150.        pressing     the "Preview" button.    If present, name replaces
  151.        the "Object to warp" field in  the  user     interface.   The
  152.        behavior    of (warp [name]) is similar, except it reproduces
  153.        the results of the  "Warp"  button.   Calling  the  (exit)
  154.        function    is the same as pressing    the "Quit" button.
  155.  
  156. DETAILS    OF OPERATION
  157.        Warp  uses  the    pointlist  library  (see pointlist(3)) to
  158.        change the location of the points  in  the  object  to  be
  159.        warped.    Each point is moved using the following    formula:
  160.        weightsum = 0.0
  161.        displacementsum = (0, 0,    0)
  162.        for each    control    point {
  163.         old    = control point's original location
  164.         new    = control point's new location
  165.         displacement = (new.x - old.x, new.y - old.y, new.z    - old.z)
  166.         dist = distance from old to    location of point in target object
  167.         compute the    weight of the point using the formula
  168.          weight    = strength * E^(-(dist * stretchiness)^2)
  169.         displacement *= weight
  170.         displacementsum += displacement
  171.         weightsum += weight
  172.        }
  173.        displacementsum /= weightsum
  174.        new location of point on    object = old location of point on object +
  175.        displacementsum
  176.        This  algorithm    is loosely based on that described in the
  177.        paper "Feature  Based  Image  Metamorphosis"  by     Thaddeus
  178.        Beier and Shawn Neely (SIGGRAPH '92).
  179.  
  180.        If  the    object    to  be    warped    is  an inst with multiple
  181.        appearances of the base geom, the first appearance will be
  182.        warped and then used to replace the base    geom.
  183.  
  184. TROUBLESHOOTING
  185. The Control Points aren't near the object!
  186.        Make  sure  the control points and the object to    be warped
  187.        are in the same coordinate system.  First,  try    centering
  188.        the  object to be warped.  If that does not work, try cen-
  189.        tering the entire world (by pressing "W"    in Geomview).
  190.  
  191. With the control points    on the object, things aren't positioned
  192.  
  193.  
  194.  
  195.  
  196. Geometry Center         October 18, 1992            3
  197.  
  198.  
  199.  
  200.  
  201.  
  202. Warp(1)                              Warp(1)
  203.  
  204.  
  205. where I    can work with them!
  206.        Move the    entire world  or  fly  the  camera  around  until
  207.        things are positioned the way you like.
  208.  
  209. The object didn't change at all!
  210.        Make  sure the "Object to warp:"    field is set to    the right
  211.        thing.  Note that it may    not be set to "World" or  "world-
  212.        geom."    If you set it to "targetgeom," make sure that you
  213.        did not inadvertently warp  one    of  your  control  points
  214.        which  you  left     as  the  current Geomview target object.
  215.        Also, the object    may have changed, but not  enough  to  be
  216.        visible.      Try  moving  the control points farther.  Also,
  217.        the control points all can be imagined as tugging  at  the
  218.        object.     If  there  is only one    control    point, the result
  219.        will be a translation of    the object.
  220.  
  221. The control points are the wrong size!
  222.        Use to options panel to change the  field  marked  "Widget
  223.        Size."    You may    want to    set the    "Size relative to object"
  224.        field.
  225.  
  226. It core    dumped!
  227.        Send e-mail to the author.
  228.  
  229. SEE ALSO
  230.        geomview(1), geomview(5), pointlist(3)
  231.  
  232. AUTHOR
  233.        Celeste Fowler        email:    fowler@geom.umn.edu
  234.        The Geometry Center    phone:    (612) 626-8304
  235.        1300 South Second Street
  236.        Minneapolis, MN    55454
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262. Geometry Center         October 18, 1992            4
  263.  
  264.  
  265.